Commands for direct-access devices . READ DEFECT DATA command REASSIGN BLOCKS command
SCSI-2

9.2.9 READ LONG command

The READ LONG command (see table 128) requests that the target transfer data to the initiator. The data passed during the READ LONG command is vendor- specific, but shall include the data bytes and the ECC bytes recorded on the medium. The most recent data written in the addressed logical block shall be returned.

Table 128 - READ LONG command

===============================================================================
|  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
|Byte |        |        |        |        |        |        |        |        |
|=============================================================================|
| 0   |                           Operation code (3Eh)                        |
|-----------------------------------------------------------------------------|
| 1   |  Logical unit number      |        Reserved         | CORRCT | RelAdr |
|-----------------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|---------                                                                 ---|
| 3   |                                                                       |
|---------                        Logical block address                    ---|
| 4   |                                                                       |
|---------                                                                 ---|
| 5   |                                                                 (LSB) |
|-----------------------------------------------------------------------------|
| 6   |                           Reserved                                    |
|-----------------------------------------------------------------------------|
| 7   | (MSB)                                                                 |
|---------                        Byte transfer length                        |
| 8   |                                                                 (LSB) |
|-----------------------------------------------------------------------------|
| 9   |                           Control                                     |
===============================================================================
( Any other bytes that can be corrected by ECC should be included (e.g. data synchronization mark within the area covered by ECC). It is not important for the ECC bytes to be at the end of the data bytes; however, they should be in the same order as they are on the media. )

A corrected (CORRCT) bit of zero causes a logical block to be read without any correction made by the target. A CORRCT bit of one causes the data to be corrected by ECC before being transferred to the initiator.

See 9.2.2 for a definition of the RelAdr bit and the logical block address field.

The byte transfer length field should specify exactly the number of bytes of data that are available for transfer. If a non-zero byte transfer length does not exactly match the available data length, the target shall terminate the command with CHECK CONDITION status, the sense key shall be set to ILLEGAL REQUEST and an additional sense code set to INVALID FIELD IN CDB. The valid and ILI bits shall be set to one and the information field shall be set to the difference (residue) of the requested length minus the actual length in bytes. Negative values shall be indicated by two's complement notation.

A byte transfer length of zero indicates that no bytes shall be transferred and shall not be considered an error.